A short, Sokoban-style puzzle game with many doors, but only one key.
Made in 2 days for the 2019 GMTK Jam.
Hi all,
We created this over the last 48 hours for the 2019 GMTK Game Jam (https://itch.io/jam/gmtk-2019). Enjoy!
This is a game submission for the 2019 GMTK gamejam (<48 hours) with the theme 'only one'. Use only one button to guide your companion using morse code.
https://puffpastryprince.itch.io/morse-course
A lot of feedback requested more simple levels to start with so I added tutorial levels and undo function and now the rock/gem things act properly. I also added a command to ask for help ;D I'm keeping the submission version up until the jam is over.
Gameplay
BACKFIRE MAN is out to save the world from demons, however all he is equipped with is a bomb. Using it tends to backfire a bit...
(This game was made for Game Maker's Toolkit Jam 2019 in less than 48 hours)
THEME
The theme is: "Only One"!
Controls
Move - Arrows
Throw bomb - X
Self explode/Reset - Hold Z
POST GAME JAM UPDATE
- New animations
- New levels
- New pickups
- More sounds
Credits
Sebastian Lind
https://twitter.com/Elastiskalinjen
Simon Bothén
https://twitter.com/caresilabs
WIP Rescue/platformer - find, feed and free the lost chicks!
Fly - push + hold (UP) in air; smash platforms (DOWN) to release seed;
On ground; (DOWN) to pick up, chicks fed on contact then 'nudge' towards
the exits at either end of the level < > (watch out for rats..)
Hi everyone,
I'm currently working on a game where multiple enemies (cubes) spawn in the corners of the screen, and then move towards the player. I also have what I call patterns, that are large rectangles moving along the screen. So I made this function that make the enemies collide with the pattern and bounce off it.
My problem is that some enemies just go through the pattern, or sometimes the opposite, bounce way too fast.
How would you guys handle stuff like this ?
-- this is called each frame when updating the enemies -- r.x, r.y, r.w, and r.h are respectively the patterns location, width and height -- dx and dy is the patterns directions -- x,y, and s are respectively the enemies position and size -- vx, and vy are the enemies velocity on each axis if x+vx<r.x+r.w and x+s>r.x+dx and y+s>r.y+dy and y+vy<r.y+r.h then if x+vx<r.x then vx=-abs(vx)*1.15 elseif x+vx+s>r.x+r.w then vx=abs(vx)*1.15 end if y+vy<r.y then vy=-abs(vy)*1.15 elseif y+vy+s>r.y+r.h then vy=abs(vy)*1.15 end end -- this is to try and set a maximum value to the bounce vx=min(abs(vx),bouncecap)*sgn(vx) vy=min(abs(vy),bouncecap)*sgn(vy) |
This is a simple space shooter game that I created as an example for the Pico-8 talk at the Knoxville Game Design July 2018 meeting.
The full description of the project is available at Space Shooter Improved.
Update - Moved starting position of enemies further up on the screen.
Sketched out some water balloon physics - press any P8 button to restart with a randomized balloon size.
A few weeks ago, I tried to make a Sim City style game in an hour (for the onehourgamejam). I didn’t finish in time, and I spent several extra hours before accepting it would have to become a larger project. Since then I have been tinkering with it on and off, and I think I’m done now?
Note that this was never supposed to be a fully-featured Sim City clone - just a minimal thing with minimal features made in an hour or two.
Take control of Junction City and make it into a proper large city before you run out of money!
You can create jobs by building industry.
Jobs will attract people, but they also need houses to live in.
Finally, you can build shops to earn more money.
The goal is to make the largest city in terms of population. It is possible to breach 100k people, but it might not be straight-forward.
Description:
This is my entry for the GMYK game jam, The theme for GMTK Game Jam 2019 is "only one".
In Bong, there is only 1 ball, and 1 paddle. See how far you can get!
I'd like to have got some audio, or background music in for the competition but i ran out of time. The whole thing took about 7-8 hours start to finish, i spent a lot of time messing about with circle drawing algorithms... ugh, math.
Controls:
Z key - Start / Begin game.
Arrow keys - Move your paddle
METRASH
A top-down-shooter metroid-like.
Cursors keys to move, Z / X to fire.
1 hour or less playtime, does not save.
This is my first Pico-8 project. Apart from the class definition (which I abstracted) I wrote the whole thing from scratch in 2 weeks of spare time. This meant it turned into more of a shmup odyssey than a metroidvania. I will have to listen to a lot of feedback before I know what weapons, monsters, and topography would have worked better.
Let me know what you'd expect from a sequel.
At 128 x 128 pixels, the Waveshare 1.44 inch display with controller is a perfect fit for Pico-8.
The screen Driver being installed, requires a Waveshare 1.44" 128x128 pixel colour LCD display, with joystick & 3 buttons which utilises an ST7735S controller.
Amazon UK link: https://www.amazon.co.uk/gp/product/B077YK8161
Amazon US link: https://www.amazon.com/waveshare-1-44inch-LCD-HAT-Interface/dp/B0781BNC9L/
Built, tested and confirmed working with both Raspbian Stretch lite and Buster lite-based images.
Begin by writing a fresh Raspbian Stretch or Buster Lite image to a 4GB or larger MicroSD card using your favoured image writing tool.
Caution:
Raspbian Buster appears to generate more heat after short periods on a Pi ZeroWH than Stretch does.
Whichever image you begin your build with, please monitor CPU temperature during use. I won't be held responsible for a baked Pi!
A Pi ZeroW can be set-up headless if a properly configured "wpa_supplicant.conf" and a blank file named "ssh" are copied to the root of the MicroSD card, after writing the image but before unplugging and inserting into the Pi.
ON FIRST BOOT
SSH into the Pi or plug-in a keyboard and monitor. Login with username "pi" and password "raspberry"
sudo raspi-config |
Expand the filesystem
Set boot to CLI with auto-login
enable SPI
disable VNC
disable serial
I recommend changing the default password from "raspberry" to something more secure while you're still in raspi-config.
You may also wish to change the hostname while you're in here. I named mine pico8, so I can ssh to pico8.local from other machines for maintenance.
Exit raspi-config and reboot with
sudo reboot |
Once rebooted, login as pi, then update and upgrade the OS and programs:
sudo apt-get update sudo apt-get upgrade |
Reboot once again and re-login if recommended by the upgrade process
Let's begin by getting Pico8 running on the Pi
sudo apt-get install libasound2-dev wiringpi wget https://t.co/jZy96cDeCC?amp=1 -O sndio-1.2.0.tar.gz tar -xf sndio-1.2.0.tar.gz cd sndio-1.2.0 ./configure make sudo make install cd ~ |
Use SFTP (or USB) to transfer your personal Pico download zip file into /home/pi folder
Unzip your Pico8 Raspberry Pi zip file into /home/pi.
This should create a /home/pi/pico-8 folder, which will contain all of the files required to run Pico8.
Now we’ll get the Waveshare 1.44" 128x128 pixel LCD display hat working on the Pi
cd ~ sudo apt-get install git cmake git clone https://github.com/tasanakorn/rpi-fbcp cd rpi-fbcp/ mkdir build cd build/ cmake .. make sudo install fbcp /usr/local/bin/fbcp cd ~ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.59.tar.gz tar zxvf bcm2835-1.59.tar.gz cd bcm2835-1.59/ ./configure make sudo make check sudo make install |
Open and edit the modules file to enable the additional modules required to make the LCD function.
sudo nano /etc/modules |
Append the two lines below to the end of the file, save and exit.
spi-bcm2835 fbtft_device |
We need to create a new file for the fbtft configuration
sudo nano /etc/modprobe.d/fbtft.conf |
Add the following lines to the empty file and save it.
# /etc/modprobe.d/fbtft.conf options fbtft_device name=adafruit18_green gpios=reset:27,dc:25,cs:8,led:24 speed=40000000 bgr=1 fps=60 custom=1 height=128 width=128 rotate=180 |
Fortunately for us, Adafruit created a GPIO controller driver, so let's use this to make the Waveshare hat's controller and buttons work in pico-8.
cd ~ curl https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh >retrogame.sh sudo bash retrogame.sh |
On the option screen, Select “6 buttons + joystick”. We’ll edit the resulting config file a little later to fit the 3 button and joystick layout of our hat.
Once installed; at the reboot prompt, type “N” so as NOT to reboot your Pi.
Now we’ll edit the configuration file installed and used by Adafruit’s retrogamer driver, to configure the correct number of buttons for the Waveshare hat.
sudo nano /boot/retrogame.cfg |
Use CTRL-K to remove all lines from the file and paste the following lines into the now empty file before saving it and exiting nano.
LEFT 5 # Joypad left RIGHT 26 # Joypad right UP 6 # Joypad up DOWN 19 # Joypad down Z 20 # Button 3 X 16 # Button 2 ESC 21 # Button 1 |
Please ensure each entry is on a separate line as displayed above.
At this stage, we can set the correct display settings for the Waveshare 128x128 LCD within the file config.txt
sudo nano /boot/config.txt |
Add to the end of the file and beginning on a new/empty line, the following lines:
display_rotate=1 hdmi_group=2 hdmi_mode=87 hdmi_cvt=128 128 60 1 0 0 0 hdmi_force_hotplug=1 |
Save the file and exit nano.
Now let's put this all together and have Pico-8 run in "splore" mode at boot.
sudo nano /etc/rc.local |
This file should should be as below. (All we're adding to the file are three lines near the end, each beginning with sudo):
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi sudo /usr/local/bin/fbcp & sudo /usr/local/bin/retrogame & sudo /home/pi/pico-8/pico8 -splore & exit 0 |
Save this file and exit nano.
Shutdown and power-off the pi with
sudo shutdown now |
Wait for the pi to shutdown, unplug the power-cable and connect the Waveshare LCD hat onto the GPIO connectors.
Be careful to connect the hat in the correct orientation, onto all 40 GPIO pins.
Plug-in, power-up and enjoy all colourful 128x128 pixels of Pico-8 glory on a tiny, square display and in complete silence!
Connect the Pi to the Internet via Wi-Fi (ZeroW), then use the joystick and KEY2 to update and download Pico-8 programs directly to the Pi.
KEY1 functions as Escape
KEY2 functions as X
KEY3 functions as Z
it's a platformer, i swear
For those learning PICO-8, you may have heard that you can write carts that access the hardware mouse. While the information to do this is not readily apparent, I put together this simple demonstration program with remarks to show how you can do it by reading the position and both buttons of the device.
-- simple introduction to -- using stat(32,33,34) -- for reading the mouse -- by dw817 -- (08-01-19) -- -- poke(24365,1) -- enables keyboard + mouse -- -- stat(32) mouse-x position -- stat(33) mouse-y position -- stat(34) =1 if left button -- stat(34) =2 if right button -- stat(34) =3 both buttons -- -- flip() updates the screen cls() poke(24365,1) -- enable mouse c=7 repeat color(7) -- if right-button pressed, -- change plotting color if stat(34)==2 then c=c+1 if (c==16) c=1 -- if both buttons pressed, -- clear the screen elseif stat(34)==3 then cls() end -- read x+y position of mouse x=stat(32) y=stat(33) -- if left button pressed, -- draw on screen if stat(34)==1 then if ox!=nil then line(ox,oy,x,y,c) end ox=x oy=y else ox=nil end p=pget(x,y) pset(x,y,c) flip() pset(x,y,p) -- loop until press [esc] until forever |
Those who want to reword this OOPS are welcome to.
Hope This Helps !
The world map for the Boo-Beam's World Super Mario Maker 2 Project. Work in Progress.